package es.uned.eped.parking;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author juankasar
 */
public class Tiempo {
    public static Date unixTimestampToDate(String fecha) {
        Date resultado=null;
        Date aux = stringToDate("1970-01-01 00:00:00");
        Timestamp aux1 = dateToTimeStamp(aux);
        long val = (Long) Long.valueOf(fecha);
        val = val * 1000;
        val = val + aux1.getTime();
        Timestamp aux2 = new Timestamp(val);
        resultado = timestampToDate(aux2);
        return resultado;
    }

    public static String dateToUnixTimestamp(Date fecha){
        String res = "";
        Date aux = stringToDate("1970-01-01 00:00:00");
        Timestamp aux1 = dateToTimeStamp(aux);
        Timestamp aux2 = dateToTimeStamp(fecha);
        long diferenciaMils = aux2.getTime() - aux1.getTime();
        long segundos = diferenciaMils / 1000;
        return res+segundos;
    }

    public static String dateToString(Date fecha){
        String result = null;
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        result = format.format(fecha);
        return result;
    }
    
    public static Date stringToDate(String fecha){
        // Solo funciona con string en el formato yyyy-MM-dd HH:mm:ss
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date res = null;
        try{
                res = format.parse(fecha);
        }catch(Exception e){}
        return res;
    }

    public static Timestamp dateToTimeStamp(Date fecha){
        return new Timestamp(fecha.getTime());
    }

    public static Date fechaHoraSistema(){
        return new Date(System.currentTimeMillis());
    }

    private static Date timestampToDate(Timestamp timestamp) {
        return new Date(timestamp.getTime());
    }
}